{"ast":null,"code":"import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"ref\"],\n  _excluded2 = [\"ariaLabel\", \"FabProps\", \"children\", \"className\", \"direction\", \"hidden\", \"icon\", \"onBlur\", \"onClose\", \"onFocus\", \"onKeyDown\", \"onMouseEnter\", \"onMouseLeave\", \"onOpen\", \"open\", \"openIcon\", \"TransitionComponent\", \"transitionDuration\", \"TransitionProps\"],\n  _excluded3 = [\"ref\"];\nimport * as React from 'react';\nimport { isFragment } from 'react-is';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport useTheme from '../styles/useTheme';\nimport Zoom from '../Zoom';\nimport Fab from '../Fab';\nimport capitalize from '../utils/capitalize';\nimport isMuiElement from '../utils/isMuiElement';\nimport useForkRef from '../utils/useForkRef';\nimport useControlled from '../utils/useControlled';\nimport speedDialClasses, { getSpeedDialUtilityClass } from './speedDialClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n  const {\n    classes,\n    open,\n    direction\n  } = ownerState;\n  const slots = {\n    root: ['root', `direction${capitalize(direction)}`],\n    fab: ['fab'],\n    actions: ['actions', !open && 'actionsClosed']\n  };\n  return composeClasses(slots, getSpeedDialUtilityClass, classes);\n};\nfunction getOrientation(direction) {\n  if (direction === 'up' || direction === 'down') {\n    return 'vertical';\n  }\n  if (direction === 'right' || direction === 'left') {\n    return 'horizontal';\n  }\n  return undefined;\n}\nfunction clamp(value, min, max) {\n  if (value < min) {\n    return min;\n  }\n  if (value > max) {\n    return max;\n  }\n  return value;\n}\nconst dialRadius = 32;\nconst spacingActions = 16;\nconst SpeedDialRoot = styled('div', {\n  name: 'MuiSpeedDial',\n  slot: 'Root',\n  overridesResolver: (props, styles) => {\n    const {\n      ownerState\n    } = props;\n    return [styles.root, styles[`direction${capitalize(ownerState.direction)}`]];\n  }\n})(_ref => {\n  let {\n    theme,\n    ownerState\n  } = _ref;\n  return _extends({\n    zIndex: (theme.vars || theme).zIndex.speedDial,\n    display: 'flex',\n    alignItems: 'center',\n    pointerEvents: 'none'\n  }, ownerState.direction === 'up' && {\n    flexDirection: 'column-reverse',\n    [`& .${speedDialClasses.actions}`]: {\n      flexDirection: 'column-reverse',\n      marginBottom: -dialRadius,\n      paddingBottom: spacingActions + dialRadius\n    }\n  }, ownerState.direction === 'down' && {\n    flexDirection: 'column',\n    [`& .${speedDialClasses.actions}`]: {\n      flexDirection: 'column',\n      marginTop: -dialRadius,\n      paddingTop: spacingActions + dialRadius\n    }\n  }, ownerState.direction === 'left' && {\n    flexDirection: 'row-reverse',\n    [`& .${speedDialClasses.actions}`]: {\n      flexDirection: 'row-reverse',\n      marginRight: -dialRadius,\n      paddingRight: spacingActions + dialRadius\n    }\n  }, ownerState.direction === 'right' && {\n    flexDirection: 'row',\n    [`& .${speedDialClasses.actions}`]: {\n      flexDirection: 'row',\n      marginLeft: -dialRadius,\n      paddingLeft: spacingActions + dialRadius\n    }\n  });\n});\nconst SpeedDialFab = styled(Fab, {\n  name: 'MuiSpeedDial',\n  slot: 'Fab',\n  overridesResolver: (props, styles) => styles.fab\n})(() => ({\n  pointerEvents: 'auto'\n}));\nconst SpeedDialActions = styled('div', {\n  name: 'MuiSpeedDial',\n  slot: 'Actions',\n  overridesResolver: (props, styles) => {\n    const {\n      ownerState\n    } = props;\n    return [styles.actions, !ownerState.open && styles.actionsClosed];\n  }\n})(_ref2 => {\n  let {\n    ownerState\n  } = _ref2;\n  return _extends({\n    display: 'flex',\n    pointerEvents: 'auto'\n  }, !ownerState.open && {\n    transition: 'top 0s linear 0.2s',\n    pointerEvents: 'none'\n  });\n});\nconst SpeedDial = /*#__PURE__*/React.forwardRef(function SpeedDial(inProps, ref) {\n  const props = useThemeProps({\n    props: inProps,\n    name: 'MuiSpeedDial'\n  });\n  const theme = useTheme();\n  const defaultTransitionDuration = {\n    enter: theme.transitions.duration.enteringScreen,\n    exit: theme.transitions.duration.leavingScreen\n  };\n  const {\n      ariaLabel,\n      FabProps: {\n        ref: origDialButtonRef\n      } = {},\n      children: childrenProp,\n      className,\n      direction = 'up',\n      hidden = false,\n      icon,\n      onBlur,\n      onClose,\n      onFocus,\n      onKeyDown,\n      onMouseEnter,\n      onMouseLeave,\n      onOpen,\n      open: openProp,\n      TransitionComponent = Zoom,\n      transitionDuration = defaultTransitionDuration,\n      TransitionProps\n    } = props,\n    FabProps = _objectWithoutPropertiesLoose(props.FabProps, _excluded),\n    other = _objectWithoutPropertiesLoose(props, _excluded2);\n  const [open, setOpenState] = useControlled({\n    controlled: openProp,\n    default: false,\n    name: 'SpeedDial',\n    state: 'open'\n  });\n  const ownerState = _extends({}, props, {\n    open,\n    direction\n  });\n  const classes = useUtilityClasses(ownerState);\n  const eventTimer = React.useRef();\n  React.useEffect(() => {\n    return () => {\n      clearTimeout(eventTimer.current);\n    };\n  }, []);\n\n  /**\n   * an index in actions.current\n   */\n  const focusedAction = React.useRef(0);\n\n  /**\n   * pressing this key while the focus is on a child SpeedDialAction focuses\n   * the next SpeedDialAction.\n   * It is equal to the first arrow key pressed while focus is on the SpeedDial\n   * that is not orthogonal to the direction.\n   * @type {utils.ArrowKey?}\n   */\n  const nextItemArrowKey = React.useRef();\n\n  /**\n   * refs to the Button that have an action associated to them in this SpeedDial\n   * [Fab, ...(SpeedDialActions > Button)]\n   * @type {HTMLButtonElement[]}\n   */\n  const actions = React.useRef([]);\n  actions.current = [actions.current[0]];\n  const handleOwnFabRef = React.useCallback(fabFef => {\n    actions.current[0] = fabFef;\n  }, []);\n  const handleFabRef = useForkRef(origDialButtonRef, handleOwnFabRef);\n\n  /**\n   * creates a ref callback for the Button in a SpeedDialAction\n   * Is called before the original ref callback for Button that was set in buttonProps\n   *\n   * @param dialActionIndex {number}\n   * @param origButtonRef {React.RefObject?}\n   */\n  const createHandleSpeedDialActionButtonRef = (dialActionIndex, origButtonRef) => {\n    return buttonRef => {\n      actions.current[dialActionIndex + 1] = buttonRef;\n      if (origButtonRef) {\n        origButtonRef(buttonRef);\n      }\n    };\n  };\n  const handleKeyDown = event => {\n    if (onKeyDown) {\n      onKeyDown(event);\n    }\n    const key = event.key.replace('Arrow', '').toLowerCase();\n    const {\n      current: nextItemArrowKeyCurrent = key\n    } = nextItemArrowKey;\n    if (event.key === 'Escape') {\n      setOpenState(false);\n      actions.current[0].focus();\n      if (onClose) {\n        onClose(event, 'escapeKeyDown');\n      }\n      return;\n    }\n    if (getOrientation(key) === getOrientation(nextItemArrowKeyCurrent) && getOrientation(key) !== undefined) {\n      event.preventDefault();\n      const actionStep = key === nextItemArrowKeyCurrent ? 1 : -1;\n\n      // stay within array indices\n      const nextAction = clamp(focusedAction.current + actionStep, 0, actions.current.length - 1);\n      actions.current[nextAction].focus();\n      focusedAction.current = nextAction;\n      nextItemArrowKey.current = nextItemArrowKeyCurrent;\n    }\n  };\n  React.useEffect(() => {\n    // actions were closed while navigation state was not reset\n    if (!open) {\n      focusedAction.current = 0;\n      nextItemArrowKey.current = undefined;\n    }\n  }, [open]);\n  const handleClose = event => {\n    if (event.type === 'mouseleave' && onMouseLeave) {\n      onMouseLeave(event);\n    }\n    if (event.type === 'blur' && onBlur) {\n      onBlur(event);\n    }\n    clearTimeout(eventTimer.current);\n    if (event.type === 'blur') {\n      eventTimer.current = setTimeout(() => {\n        setOpenState(false);\n        if (onClose) {\n          onClose(event, 'blur');\n        }\n      });\n    } else {\n      setOpenState(false);\n      if (onClose) {\n        onClose(event, 'mouseLeave');\n      }\n    }\n  };\n  const handleClick = event => {\n    if (FabProps.onClick) {\n      FabProps.onClick(event);\n    }\n    clearTimeout(eventTimer.current);\n    if (open) {\n      setOpenState(false);\n      if (onClose) {\n        onClose(event, 'toggle');\n      }\n    } else {\n      setOpenState(true);\n      if (onOpen) {\n        onOpen(event, 'toggle');\n      }\n    }\n  };\n  const handleOpen = event => {\n    if (event.type === 'mouseenter' && onMouseEnter) {\n      onMouseEnter(event);\n    }\n    if (event.type === 'focus' && onFocus) {\n      onFocus(event);\n    }\n\n    // When moving the focus between two items,\n    // a chain if blur and focus event is triggered.\n    // We only handle the last event.\n    clearTimeout(eventTimer.current);\n    if (!open) {\n      // Wait for a future focus or click event\n      eventTimer.current = setTimeout(() => {\n        setOpenState(true);\n        if (onOpen) {\n          const eventMap = {\n            focus: 'focus',\n            mouseenter: 'mouseEnter'\n          };\n          onOpen(event, eventMap[event.type]);\n        }\n      });\n    }\n  };\n\n  // Filter the label for valid id characters.\n  const id = ariaLabel.replace(/^[^a-z]+|[^\\w:.-]+/gi, '');\n  const allItems = React.Children.toArray(childrenProp).filter(child => {\n    if (process.env.NODE_ENV !== 'production') {\n      if (isFragment(child)) {\n        console.error([\"MUI: The SpeedDial component doesn't accept a Fragment as a child.\", 'Consider providing an array instead.'].join('\\n'));\n      }\n    }\n    return /*#__PURE__*/React.isValidElement(child);\n  });\n  const children = allItems.map((child, index) => {\n    const _child$props = child.props,\n      {\n        FabProps: {\n          ref: origButtonRef\n        } = {},\n        tooltipPlacement: tooltipPlacementProp\n      } = _child$props,\n      ChildFabProps = _objectWithoutPropertiesLoose(_child$props.FabProps, _excluded3);\n    const tooltipPlacement = tooltipPlacementProp || (getOrientation(direction) === 'vertical' ? 'left' : 'top');\n    return /*#__PURE__*/React.cloneElement(child, {\n      FabProps: _extends({}, ChildFabProps, {\n        ref: createHandleSpeedDialActionButtonRef(index, origButtonRef)\n      }),\n      delay: 30 * (open ? index : allItems.length - index),\n      open,\n      tooltipPlacement,\n      id: `${id}-action-${index}`\n    });\n  });\n  return /*#__PURE__*/_jsxs(SpeedDialRoot, _extends({\n    className: clsx(classes.root, className),\n    ref: ref,\n    role: \"presentation\",\n    onKeyDown: handleKeyDown,\n    onBlur: handleClose,\n    onFocus: handleOpen,\n    onMouseEnter: handleOpen,\n    onMouseLeave: handleClose,\n    ownerState: ownerState\n  }, other, {\n    children: [/*#__PURE__*/_jsx(TransitionComponent, _extends({\n      in: !hidden,\n      timeout: transitionDuration,\n      unmountOnExit: true\n    }, TransitionProps, {\n      children: /*#__PURE__*/_jsx(SpeedDialFab, _extends({\n        color: \"primary\",\n        \"aria-label\": ariaLabel,\n        \"aria-haspopup\": \"true\",\n        \"aria-expanded\": open,\n        \"aria-controls\": `${id}-actions`\n      }, FabProps, {\n        onClick: handleClick,\n        className: clsx(classes.fab, FabProps.className),\n        ref: handleFabRef,\n        ownerState: ownerState,\n        children: /*#__PURE__*/React.isValidElement(icon) && isMuiElement(icon, ['SpeedDialIcon']) ? /*#__PURE__*/React.cloneElement(icon, {\n          open\n        }) : icon\n      }))\n    })), /*#__PURE__*/_jsx(SpeedDialActions, {\n      id: `${id}-actions`,\n      role: \"menu\",\n      \"aria-orientation\": getOrientation(direction),\n      className: clsx(classes.actions, !open && classes.actionsClosed),\n      ownerState: ownerState,\n      children: children\n    })]\n  }));\n});\nprocess.env.NODE_ENV !== \"production\" ? SpeedDial.propTypes /* remove-proptypes */ = {\n  // ----------------------------- Warning --------------------------------\n  // | These PropTypes are generated from the TypeScript type definitions |\n  // |     To update them edit the d.ts file and run \"yarn proptypes\"     |\n  // ----------------------------------------------------------------------\n  /**\n   * The aria-label of the button element.\n   * Also used to provide the `id` for the `SpeedDial` element and its children.\n   */\n  ariaLabel: PropTypes.string.isRequired,\n  /**\n   * SpeedDialActions to display when the SpeedDial is `open`.\n   */\n  children: PropTypes.node,\n  /**\n   * Override or extend the styles applied to the component.\n   */\n  classes: PropTypes.object,\n  /**\n   * @ignore\n   */\n  className: PropTypes.string,\n  /**\n   * The direction the actions open relative to the floating action button.\n   * @default 'up'\n   */\n  direction: PropTypes.oneOf(['down', 'left', 'right', 'up']),\n  /**\n   * Props applied to the [`Fab`](/material-ui/api/fab/) element.\n   * @default {}\n   */\n  FabProps: PropTypes.object,\n  /**\n   * If `true`, the SpeedDial is hidden.\n   * @default false\n   */\n  hidden: PropTypes.bool,\n  /**\n   * The icon to display in the SpeedDial Fab. The `SpeedDialIcon` component\n   * provides a default Icon with animation.\n   */\n  icon: PropTypes.node,\n  /**\n   * @ignore\n   */\n  onBlur: PropTypes.func,\n  /**\n   * Callback fired when the component requests to be closed.\n   *\n   * @param {object} event The event source of the callback.\n   * @param {string} reason Can be: `\"toggle\"`, `\"blur\"`, `\"mouseLeave\"`, `\"escapeKeyDown\"`.\n   */\n  onClose: PropTypes.func,\n  /**\n   * @ignore\n   */\n  onFocus: PropTypes.func,\n  /**\n   * @ignore\n   */\n  onKeyDown: PropTypes.func,\n  /**\n   * @ignore\n   */\n  onMouseEnter: PropTypes.func,\n  /**\n   * @ignore\n   */\n  onMouseLeave: PropTypes.func,\n  /**\n   * Callback fired when the component requests to be open.\n   *\n   * @param {object} event The event source of the callback.\n   * @param {string} reason Can be: `\"toggle\"`, `\"focus\"`, `\"mouseEnter\"`.\n   */\n  onOpen: PropTypes.func,\n  /**\n   * If `true`, the component is shown.\n   */\n  open: PropTypes.bool,\n  /**\n   * The icon to display in the SpeedDial Fab when the SpeedDial is open.\n   */\n  openIcon: PropTypes.node,\n  /**\n   * The system prop that allows defining system overrides as well as additional CSS styles.\n   */\n  sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n  /**\n   * The component used for the transition.\n   * [Follow this guide](/material-ui/transitions/#transitioncomponent-prop) to learn more about the requirements for this component.\n   * @default Zoom\n   */\n  TransitionComponent: PropTypes.elementType,\n  /**\n   * The duration for the transition, in milliseconds.\n   * You may specify a single timeout for all transitions, or individually with an object.\n   * @default {\n   *   enter: theme.transitions.duration.enteringScreen,\n   *   exit: theme.transitions.duration.leavingScreen,\n   * }\n   */\n  transitionDuration: PropTypes.oneOfType([PropTypes.number, PropTypes.shape({\n    appear: PropTypes.number,\n    enter: PropTypes.number,\n    exit: PropTypes.number\n  })]),\n  /**\n   * Props applied to the transition element.\n   * By default, the element is based on this [`Transition`](http://reactcommunity.org/react-transition-group/transition/) component.\n   */\n  TransitionProps: PropTypes.object\n} : void 0;\nexport default SpeedDial;","map":{"version":3,"names":["_objectWithoutPropertiesLoose","_extends","_excluded","_excluded2","_excluded3","React","isFragment","PropTypes","clsx","unstable_composeClasses","composeClasses","styled","useThemeProps","useTheme","Zoom","Fab","capitalize","isMuiElement","useForkRef","useControlled","speedDialClasses","getSpeedDialUtilityClass","jsx","_jsx","jsxs","_jsxs","useUtilityClasses","ownerState","classes","open","direction","slots","root","fab","actions","getOrientation","undefined","clamp","value","min","max","dialRadius","spacingActions","SpeedDialRoot","name","slot","overridesResolver","props","styles","theme","zIndex","vars","speedDial","display","alignItems","pointerEvents","flexDirection","marginBottom","paddingBottom","marginTop","paddingTop","marginRight","paddingRight","marginLeft","paddingLeft","SpeedDialFab","SpeedDialActions","actionsClosed","transition","SpeedDial","forwardRef","inProps","ref","defaultTransitionDuration","enter","transitions","duration","enteringScreen","exit","leavingScreen","ariaLabel","FabProps","origDialButtonRef","children","childrenProp","className","hidden","icon","onBlur","onClose","onFocus","onKeyDown","onMouseEnter","onMouseLeave","onOpen","openProp","TransitionComponent","transitionDuration","TransitionProps","other","setOpenState","controlled","default","state","eventTimer","useRef","useEffect","clearTimeout","current","focusedAction","nextItemArrowKey","handleOwnFabRef","useCallback","fabFef","handleFabRef","createHandleSpeedDialActionButtonRef","dialActionIndex","origButtonRef","buttonRef","handleKeyDown","event","key","replace","toLowerCase","nextItemArrowKeyCurrent","focus","preventDefault","actionStep","nextAction","length","handleClose","type","setTimeout","handleClick","onClick","handleOpen","eventMap","mouseenter","id","allItems","Children","toArray","filter","child","process","env","NODE_ENV","console","error","join","isValidElement","map","index","_child$props","tooltipPlacement","tooltipPlacementProp","ChildFabProps","cloneElement","delay","role","in","timeout","unmountOnExit","color","propTypes","string","isRequired","node","object","oneOf","bool","func","openIcon","sx","oneOfType","arrayOf","elementType","number","shape","appear"],"sources":["/data/messenger.client/node_modules/@mui/material/esm/SpeedDial/SpeedDial.js"],"sourcesContent":["import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"ref\"],\n  _excluded2 = [\"ariaLabel\", \"FabProps\", \"children\", \"className\", \"direction\", \"hidden\", \"icon\", \"onBlur\", \"onClose\", \"onFocus\", \"onKeyDown\", \"onMouseEnter\", \"onMouseLeave\", \"onOpen\", \"open\", \"openIcon\", \"TransitionComponent\", \"transitionDuration\", \"TransitionProps\"],\n  _excluded3 = [\"ref\"];\nimport * as React from 'react';\nimport { isFragment } from 'react-is';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport useTheme from '../styles/useTheme';\nimport Zoom from '../Zoom';\nimport Fab from '../Fab';\nimport capitalize from '../utils/capitalize';\nimport isMuiElement from '../utils/isMuiElement';\nimport useForkRef from '../utils/useForkRef';\nimport useControlled from '../utils/useControlled';\nimport speedDialClasses, { getSpeedDialUtilityClass } from './speedDialClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n  const {\n    classes,\n    open,\n    direction\n  } = ownerState;\n  const slots = {\n    root: ['root', `direction${capitalize(direction)}`],\n    fab: ['fab'],\n    actions: ['actions', !open && 'actionsClosed']\n  };\n  return composeClasses(slots, getSpeedDialUtilityClass, classes);\n};\nfunction getOrientation(direction) {\n  if (direction === 'up' || direction === 'down') {\n    return 'vertical';\n  }\n  if (direction === 'right' || direction === 'left') {\n    return 'horizontal';\n  }\n  return undefined;\n}\nfunction clamp(value, min, max) {\n  if (value < min) {\n    return min;\n  }\n  if (value > max) {\n    return max;\n  }\n  return value;\n}\nconst dialRadius = 32;\nconst spacingActions = 16;\nconst SpeedDialRoot = styled('div', {\n  name: 'MuiSpeedDial',\n  slot: 'Root',\n  overridesResolver: (props, styles) => {\n    const {\n      ownerState\n    } = props;\n    return [styles.root, styles[`direction${capitalize(ownerState.direction)}`]];\n  }\n})(({\n  theme,\n  ownerState\n}) => _extends({\n  zIndex: (theme.vars || theme).zIndex.speedDial,\n  display: 'flex',\n  alignItems: 'center',\n  pointerEvents: 'none'\n}, ownerState.direction === 'up' && {\n  flexDirection: 'column-reverse',\n  [`& .${speedDialClasses.actions}`]: {\n    flexDirection: 'column-reverse',\n    marginBottom: -dialRadius,\n    paddingBottom: spacingActions + dialRadius\n  }\n}, ownerState.direction === 'down' && {\n  flexDirection: 'column',\n  [`& .${speedDialClasses.actions}`]: {\n    flexDirection: 'column',\n    marginTop: -dialRadius,\n    paddingTop: spacingActions + dialRadius\n  }\n}, ownerState.direction === 'left' && {\n  flexDirection: 'row-reverse',\n  [`& .${speedDialClasses.actions}`]: {\n    flexDirection: 'row-reverse',\n    marginRight: -dialRadius,\n    paddingRight: spacingActions + dialRadius\n  }\n}, ownerState.direction === 'right' && {\n  flexDirection: 'row',\n  [`& .${speedDialClasses.actions}`]: {\n    flexDirection: 'row',\n    marginLeft: -dialRadius,\n    paddingLeft: spacingActions + dialRadius\n  }\n}));\nconst SpeedDialFab = styled(Fab, {\n  name: 'MuiSpeedDial',\n  slot: 'Fab',\n  overridesResolver: (props, styles) => styles.fab\n})(() => ({\n  pointerEvents: 'auto'\n}));\nconst SpeedDialActions = styled('div', {\n  name: 'MuiSpeedDial',\n  slot: 'Actions',\n  overridesResolver: (props, styles) => {\n    const {\n      ownerState\n    } = props;\n    return [styles.actions, !ownerState.open && styles.actionsClosed];\n  }\n})(({\n  ownerState\n}) => _extends({\n  display: 'flex',\n  pointerEvents: 'auto'\n}, !ownerState.open && {\n  transition: 'top 0s linear 0.2s',\n  pointerEvents: 'none'\n}));\nconst SpeedDial = /*#__PURE__*/React.forwardRef(function SpeedDial(inProps, ref) {\n  const props = useThemeProps({\n    props: inProps,\n    name: 'MuiSpeedDial'\n  });\n  const theme = useTheme();\n  const defaultTransitionDuration = {\n    enter: theme.transitions.duration.enteringScreen,\n    exit: theme.transitions.duration.leavingScreen\n  };\n  const {\n      ariaLabel,\n      FabProps: {\n        ref: origDialButtonRef\n      } = {},\n      children: childrenProp,\n      className,\n      direction = 'up',\n      hidden = false,\n      icon,\n      onBlur,\n      onClose,\n      onFocus,\n      onKeyDown,\n      onMouseEnter,\n      onMouseLeave,\n      onOpen,\n      open: openProp,\n      TransitionComponent = Zoom,\n      transitionDuration = defaultTransitionDuration,\n      TransitionProps\n    } = props,\n    FabProps = _objectWithoutPropertiesLoose(props.FabProps, _excluded),\n    other = _objectWithoutPropertiesLoose(props, _excluded2);\n  const [open, setOpenState] = useControlled({\n    controlled: openProp,\n    default: false,\n    name: 'SpeedDial',\n    state: 'open'\n  });\n  const ownerState = _extends({}, props, {\n    open,\n    direction\n  });\n  const classes = useUtilityClasses(ownerState);\n  const eventTimer = React.useRef();\n  React.useEffect(() => {\n    return () => {\n      clearTimeout(eventTimer.current);\n    };\n  }, []);\n\n  /**\n   * an index in actions.current\n   */\n  const focusedAction = React.useRef(0);\n\n  /**\n   * pressing this key while the focus is on a child SpeedDialAction focuses\n   * the next SpeedDialAction.\n   * It is equal to the first arrow key pressed while focus is on the SpeedDial\n   * that is not orthogonal to the direction.\n   * @type {utils.ArrowKey?}\n   */\n  const nextItemArrowKey = React.useRef();\n\n  /**\n   * refs to the Button that have an action associated to them in this SpeedDial\n   * [Fab, ...(SpeedDialActions > Button)]\n   * @type {HTMLButtonElement[]}\n   */\n  const actions = React.useRef([]);\n  actions.current = [actions.current[0]];\n  const handleOwnFabRef = React.useCallback(fabFef => {\n    actions.current[0] = fabFef;\n  }, []);\n  const handleFabRef = useForkRef(origDialButtonRef, handleOwnFabRef);\n\n  /**\n   * creates a ref callback for the Button in a SpeedDialAction\n   * Is called before the original ref callback for Button that was set in buttonProps\n   *\n   * @param dialActionIndex {number}\n   * @param origButtonRef {React.RefObject?}\n   */\n  const createHandleSpeedDialActionButtonRef = (dialActionIndex, origButtonRef) => {\n    return buttonRef => {\n      actions.current[dialActionIndex + 1] = buttonRef;\n      if (origButtonRef) {\n        origButtonRef(buttonRef);\n      }\n    };\n  };\n  const handleKeyDown = event => {\n    if (onKeyDown) {\n      onKeyDown(event);\n    }\n    const key = event.key.replace('Arrow', '').toLowerCase();\n    const {\n      current: nextItemArrowKeyCurrent = key\n    } = nextItemArrowKey;\n    if (event.key === 'Escape') {\n      setOpenState(false);\n      actions.current[0].focus();\n      if (onClose) {\n        onClose(event, 'escapeKeyDown');\n      }\n      return;\n    }\n    if (getOrientation(key) === getOrientation(nextItemArrowKeyCurrent) && getOrientation(key) !== undefined) {\n      event.preventDefault();\n      const actionStep = key === nextItemArrowKeyCurrent ? 1 : -1;\n\n      // stay within array indices\n      const nextAction = clamp(focusedAction.current + actionStep, 0, actions.current.length - 1);\n      actions.current[nextAction].focus();\n      focusedAction.current = nextAction;\n      nextItemArrowKey.current = nextItemArrowKeyCurrent;\n    }\n  };\n  React.useEffect(() => {\n    // actions were closed while navigation state was not reset\n    if (!open) {\n      focusedAction.current = 0;\n      nextItemArrowKey.current = undefined;\n    }\n  }, [open]);\n  const handleClose = event => {\n    if (event.type === 'mouseleave' && onMouseLeave) {\n      onMouseLeave(event);\n    }\n    if (event.type === 'blur' && onBlur) {\n      onBlur(event);\n    }\n    clearTimeout(eventTimer.current);\n    if (event.type === 'blur') {\n      eventTimer.current = setTimeout(() => {\n        setOpenState(false);\n        if (onClose) {\n          onClose(event, 'blur');\n        }\n      });\n    } else {\n      setOpenState(false);\n      if (onClose) {\n        onClose(event, 'mouseLeave');\n      }\n    }\n  };\n  const handleClick = event => {\n    if (FabProps.onClick) {\n      FabProps.onClick(event);\n    }\n    clearTimeout(eventTimer.current);\n    if (open) {\n      setOpenState(false);\n      if (onClose) {\n        onClose(event, 'toggle');\n      }\n    } else {\n      setOpenState(true);\n      if (onOpen) {\n        onOpen(event, 'toggle');\n      }\n    }\n  };\n  const handleOpen = event => {\n    if (event.type === 'mouseenter' && onMouseEnter) {\n      onMouseEnter(event);\n    }\n    if (event.type === 'focus' && onFocus) {\n      onFocus(event);\n    }\n\n    // When moving the focus between two items,\n    // a chain if blur and focus event is triggered.\n    // We only handle the last event.\n    clearTimeout(eventTimer.current);\n    if (!open) {\n      // Wait for a future focus or click event\n      eventTimer.current = setTimeout(() => {\n        setOpenState(true);\n        if (onOpen) {\n          const eventMap = {\n            focus: 'focus',\n            mouseenter: 'mouseEnter'\n          };\n          onOpen(event, eventMap[event.type]);\n        }\n      });\n    }\n  };\n\n  // Filter the label for valid id characters.\n  const id = ariaLabel.replace(/^[^a-z]+|[^\\w:.-]+/gi, '');\n  const allItems = React.Children.toArray(childrenProp).filter(child => {\n    if (process.env.NODE_ENV !== 'production') {\n      if (isFragment(child)) {\n        console.error([\"MUI: The SpeedDial component doesn't accept a Fragment as a child.\", 'Consider providing an array instead.'].join('\\n'));\n      }\n    }\n    return /*#__PURE__*/React.isValidElement(child);\n  });\n  const children = allItems.map((child, index) => {\n    const _child$props = child.props,\n      {\n        FabProps: {\n          ref: origButtonRef\n        } = {},\n        tooltipPlacement: tooltipPlacementProp\n      } = _child$props,\n      ChildFabProps = _objectWithoutPropertiesLoose(_child$props.FabProps, _excluded3);\n    const tooltipPlacement = tooltipPlacementProp || (getOrientation(direction) === 'vertical' ? 'left' : 'top');\n    return /*#__PURE__*/React.cloneElement(child, {\n      FabProps: _extends({}, ChildFabProps, {\n        ref: createHandleSpeedDialActionButtonRef(index, origButtonRef)\n      }),\n      delay: 30 * (open ? index : allItems.length - index),\n      open,\n      tooltipPlacement,\n      id: `${id}-action-${index}`\n    });\n  });\n  return /*#__PURE__*/_jsxs(SpeedDialRoot, _extends({\n    className: clsx(classes.root, className),\n    ref: ref,\n    role: \"presentation\",\n    onKeyDown: handleKeyDown,\n    onBlur: handleClose,\n    onFocus: handleOpen,\n    onMouseEnter: handleOpen,\n    onMouseLeave: handleClose,\n    ownerState: ownerState\n  }, other, {\n    children: [/*#__PURE__*/_jsx(TransitionComponent, _extends({\n      in: !hidden,\n      timeout: transitionDuration,\n      unmountOnExit: true\n    }, TransitionProps, {\n      children: /*#__PURE__*/_jsx(SpeedDialFab, _extends({\n        color: \"primary\",\n        \"aria-label\": ariaLabel,\n        \"aria-haspopup\": \"true\",\n        \"aria-expanded\": open,\n        \"aria-controls\": `${id}-actions`\n      }, FabProps, {\n        onClick: handleClick,\n        className: clsx(classes.fab, FabProps.className),\n        ref: handleFabRef,\n        ownerState: ownerState,\n        children: /*#__PURE__*/React.isValidElement(icon) && isMuiElement(icon, ['SpeedDialIcon']) ? /*#__PURE__*/React.cloneElement(icon, {\n          open\n        }) : icon\n      }))\n    })), /*#__PURE__*/_jsx(SpeedDialActions, {\n      id: `${id}-actions`,\n      role: \"menu\",\n      \"aria-orientation\": getOrientation(direction),\n      className: clsx(classes.actions, !open && classes.actionsClosed),\n      ownerState: ownerState,\n      children: children\n    })]\n  }));\n});\nprocess.env.NODE_ENV !== \"production\" ? SpeedDial.propTypes /* remove-proptypes */ = {\n  // ----------------------------- Warning --------------------------------\n  // | These PropTypes are generated from the TypeScript type definitions |\n  // |     To update them edit the d.ts file and run \"yarn proptypes\"     |\n  // ----------------------------------------------------------------------\n  /**\n   * The aria-label of the button element.\n   * Also used to provide the `id` for the `SpeedDial` element and its children.\n   */\n  ariaLabel: PropTypes.string.isRequired,\n  /**\n   * SpeedDialActions to display when the SpeedDial is `open`.\n   */\n  children: PropTypes.node,\n  /**\n   * Override or extend the styles applied to the component.\n   */\n  classes: PropTypes.object,\n  /**\n   * @ignore\n   */\n  className: PropTypes.string,\n  /**\n   * The direction the actions open relative to the floating action button.\n   * @default 'up'\n   */\n  direction: PropTypes.oneOf(['down', 'left', 'right', 'up']),\n  /**\n   * Props applied to the [`Fab`](/material-ui/api/fab/) element.\n   * @default {}\n   */\n  FabProps: PropTypes.object,\n  /**\n   * If `true`, the SpeedDial is hidden.\n   * @default false\n   */\n  hidden: PropTypes.bool,\n  /**\n   * The icon to display in the SpeedDial Fab. The `SpeedDialIcon` component\n   * provides a default Icon with animation.\n   */\n  icon: PropTypes.node,\n  /**\n   * @ignore\n   */\n  onBlur: PropTypes.func,\n  /**\n   * Callback fired when the component requests to be closed.\n   *\n   * @param {object} event The event source of the callback.\n   * @param {string} reason Can be: `\"toggle\"`, `\"blur\"`, `\"mouseLeave\"`, `\"escapeKeyDown\"`.\n   */\n  onClose: PropTypes.func,\n  /**\n   * @ignore\n   */\n  onFocus: PropTypes.func,\n  /**\n   * @ignore\n   */\n  onKeyDown: PropTypes.func,\n  /**\n   * @ignore\n   */\n  onMouseEnter: PropTypes.func,\n  /**\n   * @ignore\n   */\n  onMouseLeave: PropTypes.func,\n  /**\n   * Callback fired when the component requests to be open.\n   *\n   * @param {object} event The event source of the callback.\n   * @param {string} reason Can be: `\"toggle\"`, `\"focus\"`, `\"mouseEnter\"`.\n   */\n  onOpen: PropTypes.func,\n  /**\n   * If `true`, the component is shown.\n   */\n  open: PropTypes.bool,\n  /**\n   * The icon to display in the SpeedDial Fab when the SpeedDial is open.\n   */\n  openIcon: PropTypes.node,\n  /**\n   * The system prop that allows defining system overrides as well as additional CSS styles.\n   */\n  sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n  /**\n   * The component used for the transition.\n   * [Follow this guide](/material-ui/transitions/#transitioncomponent-prop) to learn more about the requirements for this component.\n   * @default Zoom\n   */\n  TransitionComponent: PropTypes.elementType,\n  /**\n   * The duration for the transition, in milliseconds.\n   * You may specify a single timeout for all transitions, or individually with an object.\n   * @default {\n   *   enter: theme.transitions.duration.enteringScreen,\n   *   exit: theme.transitions.duration.leavingScreen,\n   * }\n   */\n  transitionDuration: PropTypes.oneOfType([PropTypes.number, PropTypes.shape({\n    appear: PropTypes.number,\n    enter: PropTypes.number,\n    exit: PropTypes.number\n  })]),\n  /**\n   * Props applied to the transition element.\n   * By default, the element is based on this [`Transition`](http://reactcommunity.org/react-transition-group/transition/) component.\n   */\n  TransitionProps: PropTypes.object\n} : void 0;\nexport default SpeedDial;"],"mappings":"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"},"metadata":{},"sourceType":"module"}